/*
 * @Descripttion: 
 * @version: 
 * @Author: lsy
 * @Date: 2022-01-26 14:31:31
 * @LastEditors: lsy
 * @LastEditTime: 2022-01-26 17:52:31
 */

import { initGlobalState } from 'qiankun'

// 全局注册GlobalState
window.GlobalState = initGlobalState({
    msg: "头"
});

// 在GlobalState会提供三个方法：
// 方法一：offGlobalStateChange ：接触对state的监听，一般用于子系统，组件销毁时，子系统销毁时默认调用

// 方法二：onGlobalStateChange((state,prev)=>{},fireImmediately ) ：监听state的改变,state、prev都包含改变了的或没改变的所有state；
//          fireImmediately为true时立即执行一次当前监听；

// 方法三：setGlobalState(state)：改变state，参数state是一个对象，里面可以有一个属性或多个属性，只改变传入属性的值，
//         如：GlobalState.setGlobalState({ isLogin: false });

// 在主系统通讯实列GlobalState是挂载在window上，但是子系统的实列不能挂在到window上，若是挂在到window上，
// 在主子系统同时定义运行onGlobalStateChange，会只保留子系统定义的，主子系统默认使用一个window全局。
// 所以子系统的onGlobalStateChange得绑定到vue实列上

// 在同一个vue实列上，onGlobalStateChange也只能定义一次，不然会相互覆盖，只保留最后一个。
// 子系统获的的状态最好统一管理，更新